package stud.cj.day16;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListMethodDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("java");
        list.add("python");
        list.add("css");
        //ArrayList是有序可重复的
        list.add("java");

        //常用方法
        //判断集合中是否包含某个元素
        System.out.println(list.contains("css"));//true

        //获取集合的大小
        System.out.println(list.size());//4

        //根据下标进行删除,下标从0开始,到集合大小-1结束
        //list.remove(1);

        //根据元素删除,只能删除第一次出现的
        //算法 => 删除所有的
        //list.remove("java");

        //根据下标获取
        //System.out.println(list.get(1));

        //获取元素第一次出现的下标
        System.out.println(list.indexOf("java"));//0

        //list.clear();//清空集合

        //集合的遍历
        System.out.println(list);//[java, css, java]

        //1. 普通for循环
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("====");
        //2. jdk增强for循环
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("======");
        //3. jdk8提供的语法
        list.forEach(e-> System.out.println(e));
        System.out.println("=====");
        list.forEach(System.out::println);
        System.out.println("=======");
        //4. 通用的,可以打印任何数据结构的集合 - 迭代器
        Iterator<String> iter = list.iterator();
        while(iter.hasNext()){
            String n = iter.next();
            System.out.println(n);
        }
    }
}
